Welcome![Sign In][Sign Up]
Location:
Search - SOCKET STRUCT

Search list

[Windows Developsf_200562516252

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void * p, char * buf, int len) void OnAccept(SOCKET socket) void OnClose(void * p) } void myIocp::OnAccept(SOCKET socket) { TSession *s = new TSession s->socket = socket //这里可以对连接的session进行自己的操作,例如给id找一个唯一的值 SetIoCompletionPort(socket, s) // 使连接socket与一个自定义结构体关联 } void myIocp::OnRead(void * p, char * buf, int len) { TSession *s = (TSession *)p send(s->socket, buf, len, 0) // 这里只是简单的把收到的消息返回给客户端 ... } void myIocp::OnClose(void * p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) // 开始监听网络端口,等待客户端连接 ... }-A class for thread pool,basic usage below: struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void * p, char * buf, int len) void OnAccept(SOCKET socket) void OnClose(void * p) } void myIocp::OnAccept(SOCKET socket) { TSession *s = new TSession s->socket = socket //here you can do something about connection session,such as find a unique id. SetIoCompletionPort(socket, s) // make connection socket associate with a custom structure } void myIocp::OnRead(void * p, char * buf, int len) { TSession *s = (TSession *)p send(s->socket, buf, len, 0) // return received message to client void myIocp::OnClose(void * p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) //start listenning net port,wait for client connect.
Platform: | Size: 2701 | Author: boxu | Hits:

[Internet-Network一个判断远程主机存活程序代码

Description: 一个判断远程主机存活程序代码(ping) #include #include #include #include #include "winsock.h" #pragma comment(lib,"Ws2_32"); #define SEND_SIZE 32 #define PACKET_SIZE 4096 #define ICMP_ECHO 8 #define ICMP_ECHOREPLY 0 struct icmp { unsigned char icmp_type; unsigned char icmp_code; unsigned short icmp_cksum; unsigned short icmp_id; unsigned short icmp_seq; unsigned long icmp_data; }; struct ip { unsigned char ip_hl:4; unsigned char ip_v:4; unsigned char ip_tos; unsigned short ip_len; unsigned short ip_id; unsigned short ip_off; unsigned char ip_ttl; unsigned char ip_p; unsigned short ip_sum; unsigned long ip_src; unsigned long ip_dst; }; unsigned char sendpacket[PACKET_SIZE]; unsigned char recvpacket[PACKET_SIZE]; struct sockaddr_in dest_addr; struct sockaddr_in from_addr; int sockfd; int pid; unsigned short cal_chksum(unsigned short *addr,int len); int pack(int pack_no); int unpack(unsigned char *buf,int len); void send_packet(void); void recv_packet(void); void main(int argc,char *argv[]) { struct hostent *host; struct protoent *protocol; WSADATA wsaData; int timeout=1000; int SEND_COUNT=4; int i; char *par_host; par_host=argv[argc-1]; //IP赋值 switch(argc) { case 2: break; case 3: if(strcmp(argv[1],"-t")==0) { SEND_COUNT=10000; break; } //fall through default: printf("usage: %s [-t] Host name or IP address\n",argv[0]); exit(1); } if(WSAStartup(0x1010,&wsaData)!=0) { printf("wsastartup error\n"); exit(1); } if( (protocol=getprotobyname("icmp") )==NULL) { printf("getprotobyname error\n"); exit(1); } /* printf("%s\n",protocol->p_name); printf("%s\n",protocol->p_aliases); printf("%d\n",protocol->p_proto); system("pause"); */ if( (sockfd=socket(AF_INET,SOCK_RAW,protocol->p_proto) )<0) { printf("socket error\n"); exit(1); } if(setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout))h_length); //resolve address to hostname if(host=gethostbyaddr(host->h_addr,4,PF_INET)) par_host=host->h_name; // //printf("%s\n",par_host); // } else if( dest_addr.sin_addr.s_addr=inet_addr(par_host)==INADDR_NONE) { printf("Unkown host %s\n",par_host); exit(1); } pid=getpid(); /* printf("%d\n",pid); system("pause"); */ printf("Pinging %s [%s]: with %d bytes of data:\n\n",par_host,inet_ntoa(dest_addr.sin_addr),SEND_SIZE); for(i=0;i1) { sum+=*w++; nleft-=2; } if( nleft==1) { *(unsigned char *)(&answer)=*(unsigned char *)w; sum+=answer; } sum=(sum>>16)+(sum&0xffff); sum+=(sum>>16); answer=~sum; return answer; } //打包 int pack(int pack_no) { int packsize; struct icmp *icmp; packsize=8+SEND_SIZE; icmp=(struct icmp*)sendpacket; icmp->icmp_type=ICMP_ECHO; icmp->icmp_code=0; icmp->icmp_cksum=0; icmp->icmp_seq=pack_no; icmp->icmp_id=pid; icmp->icmp_data=GetTickCount(); icmp->icmp_cksum=cal_chksum( (unsigned short *)icmp,packsize); /*校验算法*/ return packsize; } //解包 int unpack(unsigned char *buf,int len) { struct ip *ip; struct icmp *icmp; double rtt; int iphdrlen; ip=(struct ip *)buf; iphdrlen=ip->ip_hl*4; icmp=(struct icmp *)(buf+iphdrlen); if( (icmp->icmp_type==ICMP_ECHOREPLY) && (icmp->icmp_id==pid) ) { len=len-iphdrlen-8; rtt=GetTickCount()-icmp->icmp_data; printf("Reply from %s: bytes=%d time=%.0fms TTL=%d icmp_seq=%u\n", inet_ntoa(from_addr.sin_addr), len, rtt, ip->ip_ttl, icmp->icmp_seq); return 1; } return 0; } //发送 void send_packet() { int packetsize; static int pack_no=0; packetsize=pack(pack_no++); if( sendto(sockfd,(char *)sendpacket,packetsize,0,(struct sockaddr *)&dest_addr,sizeof(dest_addr) )=0) success=unpack(recvpacket,n); else if (WSAGetLastError() == WSAETIMEDOUT) { printf("Request timed out.\n"); return; } }while(!success); } UID5380 帖子239 精华0 积分1289 阅读权限40 来自软件学院 在线时间81 小时 注册时间2006-5-22 最后登录2007-2-24 查看详细资料 TOP
Platform: | Size: 5881 | Author: shuiyuan313 | Hits:

[Windows Developsf_200562516252

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void * p, char * buf, int len) void OnAccept(SOCKET socket) void OnClose(void * p) } void myIocp::OnAccept(SOCKET socket) { TSession *s = new TSession s->socket = socket //这里可以对连接的session进行自己的操作,例如给id找一个唯一的值 SetIoCompletionPort(socket, s) // 使连接socket与一个自定义结构体关联 } void myIocp::OnRead(void * p, char * buf, int len) { TSession *s = (TSession *)p send(s->socket, buf, len, 0) // 这里只是简单的把收到的消息返回给客户端 ... } void myIocp::OnClose(void * p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) // 开始监听网络端口,等待客户端连接 ... }-A class for thread pool,basic usage below: struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void* p, char* buf, int len) void OnAccept(SOCKET socket) void OnClose(void* p) } void myIocp::OnAccept(SOCKET socket) { TSession*s = new TSession s->socket = socket //here you can do something about connection session,such as find a unique id. SetIoCompletionPort(socket, s) // make connection socket associate with a custom structure } void myIocp::OnRead(void* p, char* buf, int len) { TSession*s = (TSession*)p send(s->socket, buf, len, 0) // return received message to client void myIocp::OnClose(void* p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) //start listenning net port,wait for client connect.
Platform: | Size: 2048 | Author: boxu | Hits:

[Applicationsclient_serveur

Description: client socket include <sys/types.h> include <sys/socket.h> include <stdio.h> include <netinet/in.h> include <arpa/inet.h> include <unistd.h> int main() { int sockfd int len struct sockaddr_in address int result char ch = A sockfd = socket(AF_INET, SOCK_STREAM, 0) address.sin_family = AF_INET address.sin_addr.s_addr = inet_addr("127.0.0.1") address.sin_port = 9734 len = sizeof(address) result = connect(sockfd, (struct sockaddr *)&address, len) if(result == -1) { perror("oops: client") exit(1) } write(sockfd, &ch, 1) read(sockfd, &ch, 1) printf("char from server = c\n", ch) close(sockfd) exit(0) } -client socket include <sys/types.h> include <sys/socket.h> include <stdio.h> include <netinet/in.h> include <arpa/inet.h> include <unistd.h> int main() { int sockfd int len struct sockaddr_in address int result char ch = A sockfd = socket(AF_INET, SOCK_STREAM, 0) address.sin_family = AF_INET address.sin_addr.s_addr = inet_addr("127.0.0.1") address.sin_port = 9734 len = sizeof(address) result = connect(sockfd, (struct sockaddr*)&address, len) if(result ==-1) { perror("oops: client") exit(1) } write(sockfd, &ch, 1) read(sockfd, &ch, 1) printf("char from server = c\n", ch) close(sockfd) exit(0) }
Platform: | Size: 1024 | Author: nabilnapel | Hits:

[Linux-Unixportscan

Description: Linux下的端口扫描实现 f (!connect(sockfd,(struct sockaddr*)&server,sizeof(struct sockaddr- #include<stdlib.h> #include<stdio.h> #include<sys/socket.h> #include<netdb.h> #include<string.h> #include<unistd.h> #include<netinet/in.h> #include<arpa/inet.h>
Platform: | Size: 1024 | Author: david | Hits:

[Windows DevelopVCWinSockProgramming

Description: 1. WinSock学习笔记(一) 2 2. WinSock学习笔记(二) 11 3. 使用CSockets进行文件传送 17 4. 基于UDP的网络通迅程序 19 5. 点对点多线程断点续传的实现 22 6. Windows Socket 网络编程(一) 34 7. Windows Socket 网络编程(二) 36 8. Windows Sockets 网络编程(三) 40 9. TCP实现P2P通信(TCP穿越NAT/TCP打洞) 44 10. 深入 CSocket 编程之阻塞和非阻塞模式 57 -#define FD_SETSIZE 64? typedef struct fd_set { u_int fd_count /* how many are SET?*/ SOCKET fd_array[FD_SETSIZE] /* an array of SOCKETs*/ } fd_set
Platform: | Size: 190464 | Author: netdavid | Hits:

[Internet-Networksocketudp

Description: 本程序通过udp协议的socket模拟window下面的ping程序,不需要socket连接,直接发送数据包,该数据包是通过struct自己定义的结构-This procedure simulated through socket udp protocol ping window following procedure does not require socket connections, sending packets directly to the data packet is defined by the structure struct their own
Platform: | Size: 8422400 | Author: 在劫 | Hits:

[xml-soap-webservicestruct

Description: 1.一个跨平台的线程类 2.一个跨平台的Mutex 3.一组跨平台的容器(堆栈、单双链表、哈希表) 4.一个跨平台的socket 【OK】 5.一个简单高效的内存池 6.一个简单的XML解析器 7.一个安全高效的日志类 8.一个平台无关的File类和一个Dir类 9.一个时间日期类-(1) a cross-platform thread class. A cross-platform Mutex containers of a cross-platform (stack, single and double linked lists, hash tables). A cross-platform socket [OK] 5. A simple and efficient memory pool is a simple XML parser. a safe and efficient logging class. a platform independent of the File class and a Dir class. a time and date classes
Platform: | Size: 2676736 | Author: 温祖槐 | Hits:

[Communicationsocket

Description: 简单实现C/S架构.可以实现服务器与客户端进行交流-simple function of C/S struct communication
Platform: | Size: 4780032 | Author: Suchangfeng | Hits:

[Linux-Unixfile

Description: ptr to file specific struct (vnode socket).
Platform: | Size: 9216 | Author: tupnxn | Hits:

[Linux-Unixzhizhen_neihequdong

Description: 套接字连接网络协议块,传输层接口,网络接口由struct inet_proto定义。-Network Protocol socket connection block, transport layer interface, a network interface is defined by a struct inet_proto.
Platform: | Size: 1024 | Author: 程青青 | Hits:

[Internet-Networkokf077

Description: A line Cheng Chi classes, the use of the following is the basic method of struct TSession SOCKET SOCKET int id
Platform: | Size: 2048 | Author: deitrgi | Hits:

[Dialog_Windowphattdrququesdecrease

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession SOCKET socket int id-A line Cheng Chi classes, the use of the following is the basic method of struct TSession SOCKET SOCKET int id
Platform: | Size: 2048 | Author: nalevss | Hits:

[Otherehk_classes

Description: A line Cheng Chi classes, the use of the following is the basic method of struct TSession SOCKET SOCKET int id
Platform: | Size: 2048 | Author: Lfunet | Hits:

[Windows Develop85243878

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession SOCKET socket int id(A line Cheng Chi classes, the use of the following is the basic method of struct TSession SOCKET SOCKET int id)
Platform: | Size: 2048 | Author: pugut | Hits:

[Linux-UnixPython References

Description: Python 学习笔记,包括有COPY、POPEN、Socket、Struct、argparse、Parser、dictionary、enum、ipaddress、pprint、threading、ElementTree。(notes for studying Python)
Platform: | Size: 2002944 | Author: Dengyou | Hits:

[Other178774

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession SOCKET socket int id()
Platform: | Size: 2048 | Author: OEJJlyz%2525252D697 | Hits:

[Dialog_Windowxallection-lifetime

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession SOCKET socket int id()
Platform: | Size: 2048 | Author: aahemc | Hits:

CodeBus www.codebus.net